package com.lcy.lambda.function;

/**
 * 通过一个最简单的例子认识lambda表达式
 * @author lcy
 * @date 2024/8/15 11:58
 */
public class Demo1 {


    public static void main(String[] args) {
        //匿名内部类写法：
        //缺点：要写new Runnable(),要写@Override， 要写public void run(){}
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("匿名内部类：新线程中run方法执行了");
            }
        });
        thread.start();

        //如果匿名内部类是一个接口，并且该接口只有一个方法，那么就可以使用lambda,也就是函数式接口可以用lambda简化
        Thread thread2 = new Thread(
               ()->{System.out.println("lambda:新线程中run方法执行了");}
        );
        thread2.start();

        //上面的lambda，由于只有一行代码，还能进一步偷懒，把{},return和;省略
        Thread thread3 = new Thread(
                ()->System.out.println("最简lambda：新线程中run方法执行了")
        );
        thread3.start();

    }
}
